home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 726-750 / 732 / pstools / postscript.txt < prev    next >
Text File  |  1995-03-18  |  25KB  |  690 lines

  1.  
  2. V1.25    PostScript System - some information I Parker 14 Aug 92
  3.  
  4.  
  5. HPGL      Hewett Packard Graphic Language - this is the file format
  6.       for controlling plotters and image setting machines, it 
  7.       contains everything in graphic form, bitmap images cannot
  8.       be placed in these files, only vector graphic images made
  9.       up of xy co-ordinates.
  10.  
  11. HP PCL   Hewett Packard Printer Control Language.
  12.  
  13. Gerber   output of cad package for making pcb's produces various files
  14.          for pcb, layers, silkscreen, drill template ect.
  15.  
  16. DXF      Drawing Exchange Format: cad language storage file format.
  17.  
  18. IGES     cad language storage file format.
  19.  
  20. Bitmapimage - picture made up of pixels (dots), 16 21 24 or 32 bit.
  21.               see graphics doc
  22.  
  23. vectorgraphic - picture made up of co - ordinates.
  24.  
  25. Postscript is the file format for controlling printers and type setting
  26.        machines, it can contain fonts and graphics, or just indicate
  27.        where the fonts can be found and contain the graphics.
  28.  
  29. EPS - Postscript encapsulated file which may be imported into page
  30.       layouts as a graphic in dtp programs. It cannot be printed directly.
  31.  
  32. AI - Adobe Illustrator; subset of postscript which makes it possible to
  33.      edit the files in a drawing program.
  34.  
  35.     There are three types of adobe (postscript) fonts:-
  36.  
  37.     Type 1: Known as hinted outline, which are either downloaded
  38.         to a printer on request    from the printer. Or as part of a
  39.         postscript file which is sent to the printer. Composed
  40.         of third degree bezier curves(Start and stop points with two
  41.         points inbetween).
  42.  
  43.     Type 2: Unknown.
  44.  
  45.     Type 3: Unhinted outline, these have to be downloaded to a
  46.     printer before use.
  47.  
  48. file extensions:
  49.  
  50. .PFA Printer Font Ascii Adobe type 1 shape of font in hex format ie like
  51.      the one inserted into the postscript file if the font data is included
  52.      in file.
  53.  
  54. .PFB Printer Font Binary This is the actual shape of the font, it
  55.      does'nt have to have the extension to work.
  56.  
  57. .AFM Adobe font metric contains graphic spacing data for printing. This
  58.      is required on amigas and some IBM applications, others and mac
  59.      computers use pfm files instead.
  60.  
  61. .PFM Printer font metric file alternative method of graphic spacing
  62.  
  63. .PPD printer font download file for applemac computers.
  64.  
  65. 18.abf 18 point adobe binary font (screen font).
  66.  
  67. ATM Adobe type manager, will load a font from either afm or pfm file.
  68.  
  69. Dictionary Keywords:-
  70.  
  71. FontMatrix An array that converts character coordinates into user
  72.        coordinates.
  73.  
  74. VMUsage    I think this is the memory used by the font first number for
  75.            one character the second for hole font.
  76.  
  77. FontType   A number that indicates where the information for character
  78.        descriptions is to be found and how it is represented.
  79.  
  80. FontBBox   An array of four numbers in the character coordinate system
  81.        that gives lower-left x, lower-left y. upper-right x,
  82.        and upper-right y for the box that encloses all characters in
  83.        the font, called the font-bounding box. This box is just
  84.        large enough to enclose all marks made by any character
  85.        in the font, if all the characters were printed one on
  86.        top of the other at the same point.
  87.  
  88. Encoding   An array of 256 names that maps the character codes (the 
  89.        numberic values) to a set of character names.
  90.  
  91. FID        FontID a entry that serves internal purposes in the font
  92.        machinery and that is automatically created by the
  93.        definefont operator.
  94.  
  95. POSTSCRIPT BUILTIN FONTS
  96.  
  97. FontName   Contains the fonts postscript name. This is for information
  98.        only; it is not used by the font machinery.
  99.  
  100. PaintType  A code that indicates how the characters in the font are to
  101.        be painted. The valid codes are as follows:
  102.         0 characters are filled
  103.         1 characters are stroked
  104.         2 characters are outlined
  105.         3 characters fill or stroke (or a combination of these)
  106.           
  107. StrokeWidth The stroke width in character coordinate units for outlined
  108.         fonts. This field is not initially present in filled fonts
  109.         and must be created when making an oulined font from a 
  110.         filled font.
  111.  
  112. UniqueID    An integer identifier for this font; it must be unique to
  113.         the font, no matter how slight its difference may be from
  114.         another font, should have its own uniqueID value. This entry
  115.         is not required; but if it is present, it will be used by the
  116.         font-cache mechanism to help the cache run more efficiently.
  117.  
  118. CharString  Associates character names (from Encoding) with shape descrip-
  119.         tions in a proprietary, protected format.
  120.  
  121. Private     contains protected information about the font.
  122.  
  123. Metrics     Dictionary may contain width and sidebearing information for
  124.         any character in the font. This entry is not normally
  125.         present in built-in fonts; if it is present, it will
  126.         override the widths and side bearing encoded in the
  127.         character description of whatever characters are included 
  128.         here.
  129.  
  130. FontInfo    Contains optional information about the font. This information
  131.         is entirely for the benefit of PostScript programs that use
  132.         the font; the PostScript font machinery ignores this information
  133.         Other systems use it ie:-
  134.     Notice     Copyright message.
  135.     FullName     The full text name of the font.
  136.     FamilyName   The name of the font family to which this font belongs.
  137.     Weight       The weight of the font: ie bold light.
  138.     Version      The fonts version number
  139.     ItalicAngle  The angle in degrees counter clockwise from 90 deg
  140.                  of the dominant vertical strokes of the font.
  141.     isFixedPitch A value that, if true, indicates that the font is
  142.                  fixed-pitch (monospaced) font.
  143.     UnderlinePosition The distance in character-coordinate units 
  144.                  from the baseline of the characters to the underline.
  145.     underlineThickness The stroke width in character-coordinate
  146.                  units for the underline.
  147.  
  148. WX field    Character spacing in a decoded font in the vector shaping
  149.                 data, in the first encode word 25 540 hsbw the 25 is the first
  150.                 value in the B box data the 540 will be the WX file spacing
  151.                 which can be found in the AFM/PFM files. (ie the tieup data) 
  152. C field        Ascii character codes in decimal
  153. N field        Ascii character. Note that the N field name must be the same
  154.                 as the dup field name in a pfa/pfb decoded file ie:-
  155. dup 20/DC4 put dup 21/onehalf put dup 22/onequarter put dup 23/onesuperior put
  156.                 so 20/DC4 means decimal 20 is N DC4 (device control 4)
  157.                 this is what ties the afm/pfm files to the pfa/pfb files 
  158.                 character by character.
  159. B field        Bound box for character. The second field in the vector shaping
  160.                 data of a decoded pfb file ie -2 20 hstem. The -2 is the
  161.                 second data element of the b box data in the AFM file.
  162.  
  163. Font Matrix array (size)
  164. eg [.001 0 0 .001 0 0]
  165. 1st element is multiplier for x co-ordinates
  166. 4th element is multiplier for y co-ordinates
  167. [.012 0 0 .012 0 0] would be 12 point
  168.  
  169. Note different applications and machines use different information fields
  170. to calculate information. ie pagestream uses:-
  171.  
  172. Fullname - is used to place the font name in the font box (IBM and apple-
  173. mac dont use this).
  174.  
  175. Family - used to tie .pfb .afm .pfm .abf files together, so they may be
  176. used in one font ie as bold italic inverse ect. Used in all systems.
  177.  
  178. Weight - Used in the type box (not used on IBM or applemac).
  179.  
  180. BBox - not used in pagestream but are used on other systems.
  181.  
  182.     Both applemac and IBM have font management programs. IBM's is
  183. the adobe font manager which allow the fonts to be down loaded
  184. (via the .ppd files on applemacs) to the printer. Also it is
  185. possible to manipulate (not edit) there size, spacing or filled
  186. with patterns or colours.
  187.  
  188. Font Types:-
  189.  
  190. Outlined May be rendered as either an outline or filled shape.
  191.  
  192. Hinted It means that if you reduce the point size although the lines the
  193. font are made up of will reduce in width, they will never get so small
  194. that they will disapear.
  195.  
  196. Stroked Made up of lines, limited filling options
  197.  
  198. Bitmapper Small graphic objects
  199.  
  200. Subtypes:-
  201.  
  202. Serif - have small flurish orniments ending lines (eg times)
  203.  
  204. Sans Serif - no ornimentation (eg helvetica)
  205.  
  206. Typewriter - not in other two groups (eg courier)
  207.  
  208. Proportional - character spacing changes depending on letters
  209.  
  210. Nonproportional - character spacing fixed
  211.  
  212. Roman - The upright version of a particular typeface. Also called
  213.         Normal, Regular, Book Medium Antique or Gothic.
  214.  
  215. Example of 100% Amiga compatable adobe 1 AFM font file
  216. StartFontMetrics 2.0
  217. FullName Bauhaus
  218. FamilyName Bauhaus-Bold
  219. Weight standard
  220. Comment Generated by Metamorphosis 4/13/91 11:05:31 PM 
  221. FontName Bauhaus-Bold
  222. Notice Copyright (c) 1989 Adobe Systems Incorporated. 
  223. All Rights Reserved.Bauhaus is a registered trademark
  224. of International Typeface Corporation.
  225. ItalicAngle 0.0
  226. IsFixedPitch false
  227. UnderlinePosition -100
  228. UnderlineThickness 50
  229. Version 001.000
  230. EncodingScheme AdobeStandardEncoding
  231. FontBBox -167 -226 1000 966
  232. CapHeight 700
  233. XHeight 486
  234. Descender -210
  235. Ascender 700
  236. StartCharMetrics 229
  237. C 32 ; WX 278 ; N space ; B 0 0 0 0 ; 
  238. ie ascii number ; character spacing ; ascii chr ; box co-ordinates
  239. ect.
  240.  
  241. Note a fontmetrics 3.0 file has the ascii char and box co-ords fields missing,
  242. depending on application they may have to be re-inserted.
  243.  
  244. Example of 100% compatable adobe 1 PFB font file
  245. %!PS-AdobeFont-1.0: Bauhaus-Bold 001.001
  246. %%CreationDate: 4/13/91 11:05:31 PM 
  247. %%VMusage: 1024 22131
  248.  
  249. % Generated by Metamorphosis Professional 2.0
  250. % Copyright (c) 1989 Adobe Systems Incorporated.
  251. All Rights Reserved.Bauhaus is a registered trademark of International
  252. Typeface Corporation.
  253. FontDirectory/Bauhaus-Bold known{/Bauhaus-Bold findfont dup/UniqueID
  254. known{dup/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
  255. {save true}{false}ifelse}{false}ifelse
  256. 12 dict begin
  257. /FontInfo 9 dict dup begin
  258.  /version (001.001) readonly def
  259.  /FullName (Bauhaus-Bold) readonly def
  260.  /FamilyName (Bauhaus-Bold) readonly def
  261.  /Weight (Medium) readonly def
  262.  /ItalicAngle 0 def
  263.  /isFixedPitch false def
  264.  /UnderlinePosition -100 def
  265.  /UnderlineThickness 50 def
  266.  /Notice (Copyright (c) 1989 Adobe Systems Incorporated.
  267.  All Rights Reserved.Bauhaus is a registered trademark of International
  268.  Typeface Corporation.) readonly defend readonly def
  269. /FontName /Bauhaus-Bold def
  270. /Encoding StandardEncoding def
  271. /PaintType 0 def
  272. /FontType 1 def
  273. /StrokeWidth 0 def
  274. /FontMatrix[0.001 0 0 0.001 0 0]readonly def
  275. %/UniqueID 0 def
  276. /FontBBox{-167 -226 1000 966}readonly def
  277. currentdict end
  278. currentfile eexec
  279.  
  280. Note if you use a font on an IBM there may only be eight characters
  281. in its name, also some applications require the .pfb extension and
  282. some do not. If you are going to download your fonts after the word
  283. UniqueID you must place a unique number in the range 0 - 65535.
  284. Some applications require the pfb name to be the same as the internal
  285. font name.
  286.  
  287. If you find characters missing from your fonts, or areas missing from
  288. vectorgraphic images its because of the memory allocation for different data
  289. types, one way round this is to reduce the DPI of a printout, the other
  290. is to send the file to the printer in postscript format if this is
  291. possible for your printer. The reasion this works is because the font/
  292. vector graphic data is inserted into the file at one size together with
  293. an enlargment/reduction factor to be worked out by the postscript device.
  294.  
  295. The postscript output file consists of a header, a prologue file (which
  296. may be edited), and page details. The fonts can be either encrypted into
  297. the postscript file or downloaded separatly. If you are going to download
  298. them separatly you may have to turn them into ascii (.pfa) files with
  299. the program T1ascii so they can be transferred The resulting file can then
  300. be sent to a postscript device or printed through a postscript interpreter.
  301. The file can be anything upto 150mbytes so removable cartridges are usualy
  302. used. But Adpro's split and join programs can be used the split a large
  303. file into fragments, put it on many disks then rejoin it on another 
  304. machine (amiga,ibm,mac).
  305. The prologue file of pagestream resides in the printers drawer, and is
  306. copied to the postscript output file when it is generated. This is so
  307. it may be edited once and will always modify your file afterwards.
  308.  
  309. If you want to print a colour postscript page on a black and white
  310. printer, you must split the postscript file into cyan, magenta, yellow
  311. and black fragments. You will find four areas in the file vis:-
  312.  
  313. % Begin Page
  314. % Begin Tile
  315. ("untitled", Page #1, Process Cyan)
  316.  
  317. (If you have any spot colours like flouesent green (special inks)
  318. you may have more than four sections.)
  319.  
  320.    one for cyan, magenta, yellow and black, you must create four files
  321. be leaving a set of page information for each of the colours in the
  322. file and errasing the information for the other colours. If your going
  323. to download the fonts you now have four files to send to the interpreter
  324. but if your font data is included in the postscript file you must move
  325. it, as the font data is in the cyan colour area, and the information
  326. to print the text will be in the black area.
  327.    You will find a font header/s similar to the ones in the document, with
  328. encode font information after it/them, clip all this data and remove it
  329. from the cyan area to the same location in the black data (unless the
  330. font is in colour of course). 
  331.  
  332.    To set pagestream up to send colour, select the postscript driver,
  333. select send to file, select color in the special gadget, and when you
  334. print select four colour separations. 
  335.  
  336. When you've created your four postscript files, you have to convert them
  337. into printer binary files. I'm using a HP deskjet 500, so i'm using
  338. the interpreter/driver (postlj) from the post1.7 archive, with
  339. the command "postlj -j0 init.ps filename/colour.ps TO
  340.  CYAN/MAGENTA/YELLOW/BLACK" which creates the four printer binary files.
  341. Next you place your cyan cartridge in the printer and send the cyan
  342. information to it, ie "copy CYAN to par:", and the same with the other
  343. colours.
  344. For best colour results of bitmap pictures (any format) they should be
  345. corrected by +15% gamma to adjust for paper images from screen display
  346. images. Also take into account the DPI of the scanner, with respect to
  347. the DPI of the printer. 
  348.  
  349. You can get ink kits for places like system insight england 0727 827200.
  350.  
  351. ASCII Table (numbers in hex) (american standard code for information
  352.                   interchange)
  353. nr  alt   char      nr  alt   char      nr  alt   char      nr  alt  char
  354. 00  80    NULL      20  A0    SPACE     40  C0    @        60  E0   '
  355. 01  81    SOH       21  A1    !         41  C1    A         61  E1   a
  356. 02  82    STX       22  A2    "         42  C2    B         62  E2   b
  357. 03  83    ETX       23  A3    #         43  C3    C         63  E3   c
  358. 04  84    EOT       24  A4    $         44  C4    D         64  E4   d
  359. 05  85    ENQ       25  A5    %         45  C5    E         65  E5   e
  360. 06  86    ACK       26  A6    &         46  C6    F         66  E6   f
  361. 07  87    BELL      27  A7    '         47  C7    G         67  E7   g
  362. 08  88    BS        28  A8    (         48  C8    H         68  E8   h
  363. 09  89    HT        29  A9    )         49  C9    I         69  E9   i
  364. 0A  8A    LF        2A  AA    *         4A  CA    J         6A  EA   j
  365. 0B  8B    VT        2B  AB    +         4B  CB    K         6B  EB   k
  366. 0C  8C    FF        2C  AC    ,         4C  CC    L         6C  EC   l
  367. 0D  8D    CR        2D  AD    -         4D  CD    M         6D  ED   m
  368. 0E  8E    SO        2E  AE    .         4E  CE    N         6E  EE   n
  369. 0F  8F    SI        2F  AF    /         4F  CF    O         6F  EF   o
  370. 10  90    DLE       30  B0    0         50  D0    P         70  F0   p
  371. 11  91    DC1 Xon   31  B1    1         51  D1    Q         71  F1   q
  372. 12  92    DC2 Xoff  32  B2    2         52  D2    R         72  F2   r
  373. 13  93    DC3 Xoff  33  B3    3         53  D3    S         73  F3   s
  374. 14  94    DC4       34  B4    4         54  D4    T         74  F4   t
  375. 15  95    NAK       35  B5    5         55  D5    U         75  F5   u
  376. 16  96    SYNC      36  B6    6         56  D6    V         76  F6   v
  377. 17  97    ETB       37  B7    7         57  D7    W         77  F7   w
  378. 18  98    CAN       38  B8    8         58  D8    X         78  F8   x
  379. 19  99    EM        39  B9    9         59  D9    Y         79  F9   y
  380. 1A  9A    SUB       3A  BA    :         5A  DA    Z         7A  FA   z
  381. 1B  9B    ESC       3B  BB    ;         5B  DB    [         7B  FB   {
  382. 1C  9C    FS        3C  BC    <         5C  DC    \         7C  FC   |
  383. 1D  9D    GS        3D  BD    =         5D  DD    ]         7D  FD   }
  384. 1E  9E    RS        3E  BE    >         5E  DE    ^         7E  FE   ~
  385. 1F  9F    US        3F  BF    ?         5F  DF    _         7F  FF   DEL
  386.  
  387. Use this table to determine what keys can be used with the control key
  388. to obtain a control code. First find the desired code in the first 
  389. column. Then read across that line to find the two or three keys which
  390. produce that character when pressed with control.
  391. For examplse, LF can be obtained by pressing control with one of the
  392. following: * j shift J The del character is the only one that
  393. can't be obtained using the control key.
  394.  
  395. null all zero's            soh  start of heading
  396. stx  start of text        etx  end of text
  397. eot  end of transmission    enq  enquiry
  398. ack  acknowledge        bell bell
  399. bs   backspace            ht   horizontal tab
  400. ff   form feed            cr   carrage return
  401. so   shift out            si   shift in
  402. dle  data link escape        dc1-4  device control 1-4
  403. nak  no acknowledged        sync synchronous idle
  404. etb  end of text block        can  cancel
  405. em   end of media        sub  substitute
  406. esc  escape            fs   file separator
  407. gs   group separator        rs   record separator
  408. us   unit separator
  409.  
  410. Usefull amiga programs
  411. FC - Soft Logic Converts AppleMac adobe 1, adobe3 fonts to IBM, and apple-
  412.      mac screen fonts to abf format. Note applemac files have a small
  413.      preheader which contains the icon data
  414.  
  415. Unsit - Breaks applemac files into resource and data units for file
  416.         conversion.
  417.  
  418. FixFont - Soft Logic Automaticaly inserts any adobe keywords pagestream
  419.           requires into a font, it the keywords are missing.
  420.  
  421. MakeMac - Soft Logic Takes unsit files (applemac) and rejoins them with
  422.           a correct applemac header.
  423.  
  424. MI-M2I - Gary Brusanowski Converts applemac fonts into ibm adobe1 fonts. 
  425.  
  426. T1ascii - Lee Hetherington converts pfb files to pfa format
  427.  
  428. T1binary - converts pfa files to pfb
  429.  
  430. T1disasm - disassembles a type-1 font (pfa or pfb) into raw text.
  431.  
  432. T1asm - assembles type 1 font into pfa or pfb format
  433.  
  434. unpost - extracts post resources from macintosh type 1 fonts
  435.  
  436. PFMTOAFM - Ken Borgendale Generates afm files from pfm.
  437.  
  438. Post V1.7 - Adrian Aylward postscript interpreter.
  439.  
  440. MKBMAP - Creates amiga bitmap fonts from postscript fonts.
  441.  
  442. Resetadobe - I Parker & D Spencer corrects afm spacings
  443.  
  444. Note adobe fonts will work on IBM applemac amiga atari and archimedes
  445. machines but require a small amount of modification.
  446.  
  447. The font utilities in pro-page 3.0 will allow conversion between adobe1
  448. to AGFA compugraphic. Versions which are better have been released by Gordon
  449. Fecyk see the Fred Fish collection.
  450.  
  451. Note CorelDraw's font manager can convert to adobe1 fonts but you must 
  452. delete the extra space on lines 14 & 15 in the words UnderlinePosition
  453. and UnderlinThickness.
  454.  
  455.  
  456.  
  457. Extract of decoded adobe type1 pfb file
  458.  
  459. %!FontType1-1.0: BlackForest 001.001 /* identifies the type of font and pitch */
  460. %%CreationDate: 7/25/90 8:36:30 PM   /* creation date */
  461. %%VMusage: 1024 24444
  462.  
  463. % Generated by Fontographer 3.1      /* what generated by */
  464. % v1.0 ShareWare $10 PoBox 1828 Easton MD 21601 /* copywrite */
  465. FontDirectory/BlackForest known{/BlackForest findfont dup/UniqueID known{dup
  466. /UniqueID get 4106915 eq exch/FontType get 1 eq and}{pop false}ifelse
  467. {save true}{false}ifelse}{false}ifelse /* unique identifier for font cashes */
  468. 12 dict begin
  469. /FontInfo 9 dict dup begin
  470. /FullName (BlackForest) readonly def
  471. /FamilyName (BlackForest) readonly def
  472. /Weight (standard) readonly def
  473.  /version (001.001) readonly def
  474.  /ItalicAngle 0 def
  475.  /isFixedPitch false def
  476.  /UnderlinePosition -133 def
  477.  /UnderlineThickness 20 def
  478.  /Notice (v1.0 ShareWare $10 PoBox 1828 Easton MD 21601) readonly def
  479. end readonly def
  480. /FontName /BlackForest def
  481. /Encoding 256 array
  482. dup 0/NUL put dup 1/Eth put dup 2/eth put dup 3/Lslash put
  483. dup 4/lslash put dup 5/Scaron put dup 6/scaron put dup 7/Yacute put
  484. dup 64/at put dup 65/A put dup 66/B put dup 67/C put
  485.  
  486. /* the above identify the ascii code to the character ie 65 = A */
  487.  
  488. readonly def
  489. /PaintType 0 def
  490. /FontType 1 def
  491. /StrokeWidth 0 def
  492. /FontMatrix[0.001 0 0 0.001 0 0]readonly def
  493. /UniqueID 4106915 def
  494. /FontBBox{-35 -201 1088 735}readonly def
  495. currentdict end
  496. currentfile eexec
  497. userdict/RD{string currentfile exch readstring pop}executeonly put
  498. userdict/ND{noaccess def}executeonly put
  499. userdict/NP{noaccess put}executeonly put
  500. dup/Private 11 dict dup begin
  501. /BlueValues [-10 0 490 494 667 677 734 739]ND
  502. /MinFeature{16 16}ND
  503. /password 5839 def
  504. /UniqueID 4106915 def
  505. /StdHW[22]def
  506. /StdVW[134]def
  507. /StemSnapH[22 45 66 89 ]def
  508. /StemSnapV[23 44 67 134 ]def
  509. /Subrs 9 array
  510. dup 0 {
  511.     3 0 callothersubr
  512.     pop
  513.     pop
  514.     setcurrentpoint
  515.     return
  516.     } NP
  517.  
  518. ND
  519. end NP
  520. dup/CharStrings 151 dict dup begin
  521. /.notdef {
  522.     0 280 hsbw
  523.     endchar
  524.     } ND
  525. /space {
  526.     0 250 hsbw
  527.     4 callsubr
  528.     0 vmoveto
  529.     endchar
  530.     } ND
  531. /exclam {
  532.     130 285 hsbw
  533.     0 134 vstem
  534.     1 134 hstem
  535.     201 vmoveto
  536.     139 hlineto
  537.     401 vlineto
  538.     -139 hlineto
  539.     closepath
  540.     -601 vmoveto
  541.     139 hlineto
  542.     135 vlineto
  543.     -139 hlineto
  544.     closepath
  545.     endchar
  546.     } ND
  547. /A {                /* the vectorgraphic shape of uppercase A */
  548.     -3 670 hsbw /* the first bbox entry and the spacing
  549.     134 23 vstem /* the second bbox entry */
  550.     158 23 vstem
  551.     0 23 vstem
  552.     666 -89 hstem
  553.     2 89 hstem
  554.     200 45 hstem
  555.     379 -45 hstem
  556.     490 -22 hstem
  557.     -110 22 hstem
  558.     158 22 hstem
  559.     247 334 rmoveto
  560.     -23 -88 rlineto
  561.     -43 hlineto
  562.     -47 -47 rlineto
  563.     -42 vlineto
  564.     23 -23 rlineto
  565.     24 hlineto
  566.     -23 23 rlineto
  567.     43 vlineto
  568.     52 hlineto
  569.     -37 -110 rlineto
  570.     -83 hlineto
  571.     -90 -88 rlineto
  572.     -88 vlineto
  573.     24 -24 rlineto
  574.     87 hlineto
  575.     24 24 rlineto
  576.     23 vlineto
  577.     -24 -24 rlineto
  578.     -88 hlineto
  579.     89 vlineto
  580.     294 hlineto
  581.     88 88 rlineto
  582.     -179 hlineto
  583.     17 68 rlineto
  584.     248 hlineto
  585.     45 -90 rlineto
  586.     -67 -66 rlineto
  587.     104 hlineto
  588.     86 86 rlineto
  589.     -189 370 rlineto
  590.     135 vlineto
  591.     -73 73 rlineto
  592.     -304 hlineto
  593.     -88 -88 rlineto
  594.     -88 vlineto
  595.     24 -24 rlineto
  596.     87 hlineto
  597.     24 24 rlineto
  598.     24 vlineto
  599.     -24 -24 rlineto
  600.     -88 hlineto
  601.     87 vlineto
  602.     286 hlineto
  603.     -55 -198 rlineto
  604.     -56 hlineto
  605.     -45 -45 rlineto
  606.     -42 vlineto
  607.     25 -25 rlineto
  608.     24 hlineto
  609.     -25 25 rlineto
  610.     42 vlineto
  611.     closepath
  612.     263 -88 rmoveto
  613.     -180 hlineto
  614.     60 243 rlineto
  615.     closepath
  616.     -72 -288 rmoveto
  617.     216 hlineto
  618.     12 -22 rlineto
  619.     -232 hlineto
  620.     closepath
  621.     endchar
  622.     } ND
  623.  
  624.  
  625. end
  626. readonly put
  627. dup/FontName get exch definefont pop
  628. mark currentfile closefile
  629.  
  630. Extract of corrisponding AFM file
  631.  
  632. StartFontMetrics 2.0  /* notice version 2.0 file (full data) */
  633. Comment Generated by Fontographer 7/25/90 8:36:31 PM 
  634. FontName BlackForest
  635. FullName BlackForest
  636. FamilyName BlackForest
  637. Weight standard
  638. Notice v1.0 ShareWare $10 PoBox 1828 Easton MD 21601
  639. ItalicAngle 0.0
  640. IsFixedPitch false
  641. UnderlinePosition -133
  642. UnderlineThickness 20
  643. Version 001.000
  644. EncodingScheme AppleStandard /* notice standard encoding */
  645. FontBBox -35 -201 1088 735
  646. CapHeight 667
  647. XHeight 490
  648. Descender -200
  649. Ascender 734
  650. StartCharMetrics 150
  651.  
  652. /* the following are in the order ascii code ; spacing; chr name;bounding box */
  653. C 32 ; WX 250 ; N space ; B 0 0 0 0 ; 
  654. C 33 ; WX 285 ; N exclam ; B 130 0 268 601 ; 
  655. C 65 ; WX 670 ; N A ; B -3 -110 656 666 ; 
  656.  
  657. C  -1 ; WX  376 ; N asciicircum ; /* dont know what these are */
  658. C  -1 ; WX  376 ; N asciitilde ;
  659. C  -1 ; WX  192 ; N quoteright ;
  660.  
  661. EndCharMetrics
  662. StartKernData
  663. StartKernPairs 36 /* kerning data (adjusts spacing if adjacent characters
  664.                      as stated */
  665. KPX quotesingle s -32
  666. KPX A T -32
  667. KPX F comma -136
  668.  
  669. EndKernPairs
  670. EndKernData
  671. EndFontMetrics
  672.  
  673. Compugraphic fonts:- Better at small point sizes on DMP printers
  674. poor at large sizes. Use second degree bezier curve formed (made by a
  675. single control point between start and stop points and drawn with
  676. a particular equation).
  677.  
  678. A none adobe standard writen by agfa:- there are two main systems
  679. xxx.atc      the encoding table
  680. xxx.dat      pro page related data
  681. xxx.metric   spacing and width information
  682. xxx.lib      font definition chr outlines (encoding and spacing data) 
  683. xxx.type     same as xxx.lib
  684. xxx.font
  685. xxx.otg
  686. plugin.types same as plugin.typebucket in pagestream
  687. if.fnt
  688. if.ss
  689.  
  690.